package cn.z2huo.knowledge.java.base.java.util.uuid;

import java.util.UUID;

/**
 * <p>
 *
 * @author z2huo
 */
public class UUIDTest {

    public static void main(String[] args) {
        UUID uuid = UUID.randomUUID();

        System.out.println(uuid);
        System.out.println("length is " + uuid.toString().length());
        System.out.println(uuid.toString().replace("-", ""));
        System.out.println("length is " + uuid.toString().replace("-", "").length());

        System.out.println(uuid.variant());
        System.out.println(uuid.version());
        System.out.println(UUID.randomUUID());
        System.out.println();


        UUID version3UUID = UUID.nameUUIDFromBytes("z2huo".getBytes());
        System.out.println(version3UUID);
        System.out.println(version3UUID.variant());
        System.out.println(version3UUID.version());
        // 使用相同的入参，输出结果一致。
        // 适用于确定性生成但安全性要求不极高的场景
        // 如果需要基于相同的输入生成相同的 UUID（例如为同一 URL 生成固定标识），可选择 Version 5 (v5)（基于SHA-1哈希）或 Version 3 (v3)（基于MD5哈希）
        // Version 5 比 Version 3 更安全
        System.out.println(UUID.nameUUIDFromBytes("z2huo".getBytes()));

    }
}
